package com.zhangshitong.springbootModel.base;

import java.io.Serializable;
import java.util.Date;
import java.util.Map;

import jodd.json.JsonParser;
import jodd.json.MapToBean;

/**
 * 前端向后端传递数据的封装
 * 
 * 在此基础上传输对象将使用一些传输算法，对传输对象进行加密和数据完整性保护
 * @author Administrator
 *
 */
public class DTO implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private Date time ; //数据时间
	
	private Object raw; //原始数据对象
	
	private String hash; //原始对象的数据摘要

	public Date getTime() {
		return time;
	}

	public void setTime(Date time) {
		this.time = time;
	}

	public Object getRaw() {
		return raw;
	}

	public void setRaw(Object raw) {
		this.raw = raw;
	}

	public String getHash() {
		return hash;
	}

	public void setHash(String hash) {
		this.hash = hash;
	}
	
	/**
	 * 从传输对象内获取实际的对象
	 * @param cls 实际数据对象的类型
	 * @return
	 */
	public Object getConverObject(Class cls){
		JsonParser jp = new JsonParser();
		MapToBean mapToBean = new MapToBean(jp,cls.getName());
		return mapToBean.map2bean((Map) this.raw, cls);
	}
	
}
